Skip to content

feat: add recurrence rule support (--repeat/--no-repeat)#40

Open
weberwcwei wants to merge 1 commit intosteipete:mainfrom
weberwcwei:feature/recurrence-rules
Open

feat: add recurrence rule support (--repeat/--no-repeat)#40
weberwcwei wants to merge 1 commit intosteipete:mainfrom
weberwcwei:feature/recurrence-rules

Conversation

@weberwcwei
Copy link
Copy Markdown

Summary

Add support for reading and writing EKRecurrenceRule on reminders via new --repeat and --no-repeat flags.

New Features

  • --repeat / -r on add and edit: Set recurrence rules
    • Presets: daily, weekly, biweekly, monthly, yearly
    • Custom: every N days/weeks/months/years (e.g. every 3 months)
  • --no-repeat on edit: Remove recurrence from a reminder
  • Display: Shows 🔄 every 2 weeks in standard output
  • JSON: Includes recurrenceRule object with frequency and interval

Examples

remindctl add "Vacuum floors" --list Chores --due 2026-03-29 --repeat biweekly
remindctl add "Water filter" --due 2026-09-13 --repeat "every 6 months"
remindctl edit <id> --repeat weekly
remindctl edit <id> --no-repeat

Changes

  • Models.swift: New RecurrenceFrequency enum, RecurrenceRule struct
  • EventKitStore.swift: Read/write EKRecurrenceRule, DRY refactor
  • CommandHelpers.swift: New parseRecurrence(_:) parser
  • AddCommand.swift: --repeat / -r flag
  • EditCommand.swift: --repeat / -r and --no-repeat flags
  • OutputFormatting.swift: Display recurrence in all output formats

Tested on macOS with local and shared iCloud lists. Swift 6.2, clean build.

Add support for reading and writing EKRecurrenceRule on reminders:

- New --repeat flag on add/edit: daily, weekly, biweekly, monthly, yearly,
  or custom intervals like 'every 3 months'
- New --no-repeat flag on edit to remove recurrence
- Display recurrence in standard output (🔄 every 2 weeks)
- Include recurrenceRule in JSON output
- New RecurrenceRule model with frequency and interval
- Parse EKRecurrenceRule from EventKit and map bidirectionally
bobsahur-robot pushed a commit to raymondlee-personal-org/remindctl that referenced this pull request Mar 29, 2026
…nds, and output

- AddCommand: --repeat, --alarm, --url, --parent, --tags flags
- EditCommand: same + --clear-alarm, --clear-repeat, --clear-url
- EventKitStore: full read/write for all new fields via EKReminder
- OutputFormatting: display recurrence, alarm, url, tags in text + JSON
- Cherry-picked model extensions from upstream PRs steipete#40, steipete#39, steipete#17, steipete#35, steipete#13
jakubswierczek added a commit to jakubswierczek/remindctl that referenced this pull request Mar 30, 2026
add/edit: --repeat daily|weekly|biweekly|monthly|yearly|"every N days"
edit: --no-repeat to clear recurrence
reads/writes EKRecurrenceRule, exposed in JSON output

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant